import axios from 'axios'
import Nprogress from 'nprogress' // 进度条
import envConfig from './env'
import { Message } from 'element-ui'
import router from '../router'

const http = axios.create({
  //设置基地址
  baseURL: envConfig.prod.baseURL,
  timeout: 5000
})
// http.interceptors.request.use(
//   (config) => {
//     console.log(config)
//     if (config.url !== '/login') {
//       const token = sessionStorage.getItem('token')
//       token && (config.headers.Authorization = token)
//     }
//     return config
//   },
//   (error) => {
//     return Promise.reject(error)
//   }
// )
//请求拦截
// http.interceptors.request.use(
//   (config) => {
//     // console.log(config)
//     if (config.url !== '/login') {
//       const token = sessionStorage.getItem('token')
//       token && (config.headers.Authorization = token)
//     }
//     return config
//   },
//   (error) => {
//     return Promise.reject(error)
//   }
// )
http.interceptors.request.use(
  (confirm) => {
    console.log('con::::::', confirm)
    Nprogress.start()
    if (confirm.url !== '/login') {
      const token = sessionStorage.getItem('token')
      token && (confirm.headers.Authorization = token)
    }
    return confirm
  },
  (error) => {
    return Promise.reject(error)
  }
)
//响应拦截
http.interceptors.response.use(
  (res) => {
    Nprogress.done()
    console.log('res::::::::::::::', res)
    const {
      meta: { msg, status },
      data: result
    } = res.data
    const successCodeArr = [200, 201, 204]
    if (successCodeArr.includes(status)) {
      Message({
        message: msg,
        type: 'success'
      })

      return result
    }

    Message({
      message: msg,
      type: 'error'
    })
    if (msg === '无效token') {
      router.replace('/login')
    }

    return Promise.reject(msg)
  },
  (error) => {
    return Promise.reject(error)
  }
)
export default http

// const api = axios.create({
//   baseURL:'',
//   timeout: 5000
// })

// api.interceptors.request.use(config=>{
//   console.log(config);
//   return config
// },error => {
//   Promise.reject(error)
// })

// api.interceptors.response.use(res => {
//   let code = res.data.meta.status
//   if(code === 400|| code === 404) {

//   }
// },error => {

// })

// http.interceptors.response.use(res=>{

// })

// export default api
